home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / NDK / NDK_1.3 / Read-Me1.3 / 1.2ReadMes / libraries / dos < prev    next >
Encoding:
Text File  |  1988-02-11  |  11.3 KB  |  308 lines

  1.  
  2. DOS
  3. ===
  4.  
  5.   Much improved dos, and some new commands.
  6.  
  7.   Look for 'addbuffers dfx: nn'
  8.   which will add nn buffers to the list of sector caches for drive x.
  9.   Smarter caching and new disk layout. For optimal performance; relay
  10.   out your disk by using copy all. 
  11.  
  12.   New mode for opening files - MODE_READWRITE which opens an old file
  13.   with an exclusive lock. (The actual value is 1004). Provided the
  14.   name MODE_READONLY as a synonym for MODE_OLDFILE. Look for new      
  15.   dos.h. Requestors asking for a disk to be inserted are now only     
  16.   displayed once the light on the disk has been turned off; thus not 
  17.   encouraging users to damage their disks so much.
  18.  
  19.   CON: and RAW: parameter values are now not checked by dos; they
  20.   will be checked by intuition eventually but as of now they are
  21.   not checked at all.
  22.  
  23.   Improved handling of sector allocation bitmap; should be fast for
  24.   hard disks.
  25.  
  26.   RAM:                   handles parent(); allows null file name;
  27.                          seek in empty file not now an error;
  28.                          faster transfer rate; better out of memory
  29.                          handling
  30.  
  31. The ramdisk released is about 30% faster than the 1.1 ram disk.
  32.  
  33. Ramdisk now has an icon. It will appear whenever the ram disk
  34. is built. It is built whenever you touch ram disk with a dir,
  35. or copy something into it. You can't get rid of the icon though,
  36. although you can get rid of all the contents of the ramdisk.
  37. Seek works fine on large files now.
  38.  
  39. AmigaDos SetDate command handles strings correctly now.
  40.  
  41. Developers Note: WaitForChar() can't be used on non-interactive stream.
  42.  
  43.  
  44. Ram Handler
  45. ===========
  46.  
  47. The RAM handlers record of space used is now correct, so INFO
  48. gives the right results.
  49.  
  50. The ripcord has  been removed, so RAM now only takes about 10k
  51. when first loaded. Instead it checks the free memory pool and
  52. will claim disk full if there is no single block greater than
  53. 30k free.
  54.  
  55.  
  56. Nil
  57. ===
  58. Copy * to NIL:  no longer quits early.
  59.  
  60.  
  61. Paths
  62. =====
  63.    Technical Note: The path list is held as a BPTR in the CommandDir
  64.      member of the CLI structure.  Although currently documented
  65.      as the lock on the command directory, this is either 0 or
  66.      a BPTR to a list of path elements, each consisting of:
  67.         BPTR NextPath     (BPTR to next list entry)
  68.         BPTR PathLock     (a lock on the directory)
  69.  
  70.  
  71.  
  72. Ram Handler
  73. ===========
  74. The RAM handlers record of space used is now correct, so INFO
  75. gives the right results.
  76.  
  77. The ripcord has  been removed, so RAM now only takes about 10k
  78. when first loaded. Instead it checks the free memory pool and
  79. will claim disk full if there is no single block greater than
  80. 30k free.
  81.  
  82. The SetFileDate packet (and therefore the SETDATE command) now
  83. work properly on ram: files.
  84.  
  85.  
  86. Ramdisk
  87. =======
  88. Seek works fine on large files now.
  89.  
  90.  
  91. Requesters
  92. ==========
  93. The unit number fields in DOS requestors have been expanded to
  94. two digits.
  95.  
  96. The text of the requestor put up by the filing system when a
  97. disk is removed while the red light is on has been made more insistent.
  98. It now says:
  99.        
  100.       You MUST replace volume
  101.       xxxxxxxx
  102.       in unit dd !!!
  103.  
  104. Now the only way to remove this requestor (and read/write error
  105. requestors too) is to click one of the gadgets. It used to go
  106. away if the disk in another drive was changed.
  107.  
  108.  
  109. Archive Bit
  110. ===========
  111. Bit 4 of the protection field is now cleared whenever a file which
  112. has been written to is closed, or a directory updated. This will
  113. allow an archiving program to scan a disk and detect those file which
  114. have been altered since it last ran. It can use the protect function
  115. to set the archive bit to mark the file as archived.
  116.  
  117. The PROTECT command has been modified to alter only the lower 4 bits
  118. of the protection field and preserve the rest. It used to set them 
  119. all to 1.
  120.  
  121.  
  122. dos.h, dos.i
  123. ============
  124. added FIBB_ARCHIVE and FIBF_ARCHIVE
  125.  
  126.  
  127. New Dos Packets
  128. ===============
  129.    Note - These new packets are not defined in the dosextens headers.
  130.           Define them in your code.
  131.  
  132. 1) SetFileDate (=34L)
  133.    Sets the date of a file or directory to specified date.
  134.    The packet is sent to the MsgPort returned by DeviceProc(filename).
  135.    The args for the packet are
  136.     arg[0] = NULL
  137.     arg[1] = lock on ParentDir of file
  138.     arg[2] = BPTR to BSTR of filename 
  139.     arg[3] = APTR to a DateStamp structure
  140.    A new CLI command SetDate <file> <date> [<time>] is also provided.
  141.  
  142.    Note that SetFileDate packet and SetDate command did not work
  143.    properly on both ram and disk files until Release version of 1.2.
  144.  
  145. 2) SetRawMode (=994L)
  146.    Switches CON: into raw mode and back again. The single argument
  147.    is DOS TRUE (-1L) for raw mode (as if RAW: had been requested)
  148.    and DOS FALSE (0L) to turn it back to CON: style.  The packet is 
  149.    sent to a (struct MsgPort *)process->pr_ConsoleTask.
  150.  
  151.    Note that in addition to this an escape sequence may be sent
  152.    by the user if required to turn on or off the automatic translation
  153.    of LF to CR/LF. Normally RAW: does not enable this and CON: does.
  154.    Sending the packet SetRawMode does not affect the translation.
  155.    The code is CSI 20h to enable translation and CSI 20l to disable.
  156.  
  157. 3) Flush (=27L)
  158.    Cause pending blocks to be written out and motor turned off.
  159.    This is expensive, so should not be done after every write.
  160.    It is used by the system before putting up a requestor saying
  161.    "Change Disk" and the packet is only returned when the job
  162.    is done.  This action would be useful in a database when it 
  163.    wished to commit.
  164.  
  165. 4) MoreCache (=18L)
  166.    The single argument indicates the number of extra cache buffers
  167.    to be obtained for use.  Used by ADDBUFFERS command.
  168.  
  169. 5) A DiskInfo packet (ACTION_DISK_INFO = 25L) sent to the console handler 
  170.    ((struct MsgPort *)process->pr_ConsoleTask)) now returns not only the
  171.    window pointer in the id_VolumeNode field, but also a pointer to the 
  172.    console IO block used by the console handler in the id_InUse field.
  173.    (These fields are part of the InfoData structure that is filled
  174.    in by sending the ACTION_DISK_INFO packet).  Remember that you must
  175.    AllocMem your InfoData structure to assure longword alignment 
  176.    since a BPTR to the structure is arg[0] of the packet.
  177.    A pointer to the ConUnit structure (see devices/conunit.h, .i)
  178.    can be found via the console IO block pointer:
  179.       conUnit = (struct ConUnit *)
  180.                    ((struct IOStdReq *)infoData->id_InUse)->io_Unit;
  181.  
  182.    There is a lot of useful information in the ConUnit structure
  183.    such as text cursor position and limits.  If you are using the
  184.    exec console.device directly, you should be able to get the
  185.    ConUnit pointer from yourIoRequest->io_Unit.
  186.  
  187.    
  188.  
  189. Additional Upgrades to Dos
  190. ==========================
  191. 1) Uses exec CopyMem & CopyMemQuick for all copies in DISK & RAM
  192.  
  193. 2) Ram now writes files in blocks of 512 bytes rather than 1 block
  194.    per write as before.
  195.  
  196. 3) Printa & stripa now handle debug hunks. 
  197.  
  198. 4) There was formerly a race condition when a disk was pulled while the 
  199.    dos was starting the write of a large file.  If the disk was pulled
  200.    in the 1/4-1/2 second interval before the disk light came on, 
  201.    dos used to put up a requester that said I/O error.  If you replaced
  202.    the disk, it crashed.  If you now pull the disk before the light comes
  203.    on, dos puts up a requester that asks you to reinsert the disk, and it
  204.    no longer crashes when you do.
  205.  
  206. 5) Seek() now much faster for larger files.
  207.  
  208. 6) Both directory and data blocks cached, disk layout improved so that
  209.    directory access is much faster.  Also small files (one block) are
  210.    optimized to be placed on the same track as the file header.  This
  211.    means that access to the first 488 bytes of a file is quicker.
  212.  
  213. 7) The search for a free block has been improved so that directory
  214.    access is much faster for large disks.  Note, however, that
  215.    AmigaDOS really does want to know how many tracks, surfaces, and
  216.    sectors on a disk.  If you lie to it in a MOUNT file saying that
  217.    it has one track, one surface, and 32000 sectors then this will
  218.    work, but bitmap and disk access will be slow.
  219.  
  220. 8) More than 26 bitmaps are now supported, so that disks >54Mbytes are OK.
  221.  
  222. 9) The specification of the DevInfo structure has been expanded.  The
  223.    entry GlobVec used when the DevInfo entry refers to a device is
  224.    documented as being a global vector pointer or zero.  Now this value
  225.    may be -1, which means that the handler process does not need a
  226.    global vector pointer and should be called as a C process.
  227.    In a mountlist, GlobVec = 1 may be used to specify a global vector
  228.    of -1 for a non-BCPL handler.
  229.  
  230. 10) Cache buffers may be allocated from chip or fast memory; the
  231.     default is fast memory but the trackdisk device requires chip
  232.     memory.  This value is placed as an extension to the file system
  233.     startup environment data.  In a mountlist, set BufMemType equal
  234.     to the numeric value of the flags for the AllocMem of buffers.
  235.     
  236. 11) The Execute() function now returns the result2 field from the last
  237.     command called in the Execute string.  Thus calling IoErr() after
  238.     Execute will provide a zero if the command worked and the error code
  239.     otherwise.  Note this is the error code and not the return code.
  240.  
  241. 12) ^\ does not now generate a newline before the EOF character.
  242.  
  243.  
  244. Dos Bugs Fixed
  245. ==============
  246. 1) Attempting to write a negative number of bytes now fails rather than
  247.    behaving strangely.
  248. 2) DIR, LIST and other directory searches do not now loop if CANCEL is
  249.    chosen when the disk is unreadable.
  250. 3) Console handler does not now hang if characters are typed rapidly
  251.    at it while new windows are being opened.
  252. 4) The timestamp on a disk is updated when the protection, filenote, name 
  253.    or date of a file or directory is altered.
  254. 5) Fixed bug which caused the system failing to notice that a new disk
  255.    had been inserted in a new drive.
  256. 6) Fixed bug which caused Info() to hang if given a zero lock and no
  257.    disk in the drive.
  258. 7) Version 2.32 of the linker now handles overlays correctly.
  259. 8) ED now does insert file properly. 
  260. 9) ED clears ^D flag (+ others) berfore exiting. 
  261. 10) ED understands disk full
  262. 11) ED doesn't screw display when resizing windows
  263. 12) TYPE Alignment of bytes in last line of a typehex now OK.
  264. 13) DIR Pattern matches files & directories
  265. 14) LIST No longer always matches files with ! in name
  266. 15) STATUS shows proper command name & priorities
  267. 16) Ram-handler understands protection & filenotes
  268. 17) Ram-handler - seek bugs fixed
  269. 18) Ram-handler - Should now not crash system on disk full
  270.  
  271. DiskCopy won't change the volume name under CLI.
  272. If it doesn't finish the copy if marks the destination disk bad instead
  273. of confusing DOS.
  274.  
  275. Fix to problem with bitmap not being marked as valid
  276. when small files are rewritten.  Happened when
  277. preferences was saved, causing disk to need to be
  278. revalidated on reboot.
  279.  
  280. new sys:system/cli program correctly sets the default stack size to 4000.
  281.  
  282. the run command no longer changes your priority.
  283.  
  284. Fixed bug in access().  The bug was that writes to existing
  285. files did not get flushed out to disk.  Now the right stuff happens.
  286.  
  287. new loadwb and system/cli
  288. All in the interest of inheriting a path that is set up
  289. in one's startup sequence.  Therefore the path commands
  290. will be added back to the default startup sequence file.
  291.  
  292.  
  293. Bug in CreateProc() which failed when out of memory is fixed.  Also
  294. the name passed to CreateProc() is now copied so the name remains
  295. valid even if the creator is no longer in memory.
  296.  
  297. Bug in Exit which caused it to not work from standalone processes fixed.
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.